package com.jialiang.yojcodesandbox.security;

import java.security.Permission;

/**
 * 自定义安全管理器
 */
public class MySecurityManager extends SecurityManager{

    /**
     * 检查所有的权限
     * @param perm
     */
    @Override
    public void checkPermission(Permission perm) {
        // 默认禁用所有权限
        // super.checkPermission(perm);
    }

    /**
     * 检测程序是否可执行文件
     * @param cmd
     */
    @Override
    public void checkExec(String cmd) {
        throw new SecurityException("checkExec 权限不足：" + cmd);
    }

    /**
     * 检测程序是否允许读文件
     * @param file
     */
    @Override
    public void checkRead(String file) {
        // System.out.println(file);
        // if (file.contains("D:\\itheima\\Java-project\\yupi\\oj\\oj-code\\yoj-code-sandbox")) {
        //     return;
        // }
        // throw new SecurityException("checkRead 权限不足" + file);
    }

    /**
     * 检测程序是否允许写文件
     * @param file
     */
    @Override
    public void checkWrite(String file) {
        // throw new SecurityException("checkWrite 权限不足" + file);
    }

    /**
     * 检测程序是否允许删除文件
     * @param file
     */
    @Override
    public void checkDelete(String file) {
        // throw new SecurityException("checkDelete 权限不足" + file);
    }

    /**
     * 检测程序是否允许连接网络
     * @param host
     * @param port
     */
    @Override
    public void checkConnect(String host, int port) {
        // throw new SecurityException("checkConnect 权限不足" + host + ":" + port);
    }
}